草庐IT

c++ - 鼠标的QGestureEvent

全部标签

c++ - 如何在 MFC 中禁用 CListCtrl 的水平滚动条?

我的MFC工程中有一个CListCtrl控件,我不想随时显示横向的ScrollBar。但是垂直的需要正常显示。我用的是VS2010,有解决办法吗? 最佳答案 您可以通过派生您的List控件并拥有类似这样的东西来做到这一点:voidCListCtrlEx::OnNcCalcSize(BOOLbCalcValidRects,NCCALCSIZE_PARAMSFAR*lpncsp){ModifyStyle(WS_HSCROLL,0);CListCtrl::OnNcCalcSize(bCalcValidRects,lpncsp);}或者如果

c - Armstrong 数字程序在使用 Codeblocks 和 MinGW(32 位)编译时产生错误结果

我想编写一个程序来判断一个数字是否是阿姆斯壮数字。我为此编写了一个函数,如果数字是armstrong数字则返回1,否则返回0。我在函数中使用了以下代码:intisArmsNum(intx){intm,r=0,d,y;y=x;while(x>0){m=x%10;r=r+pow(m,3);x=x/10;}if(r==y){d=1;}if(r!=y){d=0;}returnd;}现在的问题是,当我尝试检查程序中的153(这是一个armstrong数字)时,程序返回0,并且仅当x=1时才返回1。我在VisualStudio2013中编译了相同的代码,它是工作正常。我决定对Codeblocks(

c# - 如何在单击鼠标的应用程序中找到控件的窗口句柄

我正在编写一个C#应用程序。我正在寻找一种方法,只需提供鼠标单击的坐标(或任何坐标)即可在其他应用程序中找到控件的窗口句柄。示例:在我的桌面上,我打开了计算器应用程序、打开了记事本并运行了一些其他第3方应用程序。屏幕被他们每个人部分覆盖。现在,如果我运行我的应用程序并单击屏幕上的任何位置,我希望能够找出鼠标下控件(按钮、文本框、标签、选项卡、框架等)的窗口句柄,无论是否它是在计算器中的按钮、记事本中的文件菜单或第3方应用程序中的某些其他控件上单击的。它类似于我们从Spy++获得的功能。 最佳答案 顺便说一句,这有alreadybee

c - 在c中使用exe文件

(在Windows8上工作)我正在尝试使用c获取exe文件(PE32格式)中节标题的大小。根据我的阅读,此字段的偏移量为60,因此我尝试从那里读取。这是我使用的代码:unsignedcharoffset;fseek(file,60,SEEK_SET);fread(&offset,sizeof(offset),1,file);printf("%hu",offset);我的问题是如何获得节标题的大小?如果它不在偏移量60上,我该如何找到它? 最佳答案 这应该有效:voidmain(){FILE*file=fopen("your_exe_

c++ - 有没有办法确定 Windows 计算机是否连接了触控板和鼠标?

我正在寻找一种方法来确定运行我的游戏的计算机是否连接了触控板和鼠标。一个典型的例子是连接了外接鼠标的笔记本电脑。是否有一个WindowsAPI可以返回连接到系统的鼠标/指针设备的数量?我需要支持Windows7+。编辑我保留接受的答案,因为它有效并回答了我的问题,但在发现ManyMouse后我决定不使用它.它做我想做的,并允许我在Mac、Windows和(希望仍然需要测试的)Linux上使用相同的API。 最佳答案 我碰巧有一些代码可以枚举连接到系统的鼠标。如果不止一个,很可能一个是触控板,另一个是外接鼠标,尽管我猜它可能是一个触控

使用 Windows API 比较线程 ID

我正在使用WindowsAPI线程,我想比较线程ID。首先,我用CreateThread()创建了一个线程并存储我从函数中获取的句柄(HANDLE)和ID(LPDWORD)。然后我使用GetCurrentThread()从创建的线程中获取句柄和ID和GetThreadId().对于两个句柄和两个ID,我总是得到不同的值。有没有办法以类似于pthread的方式比较线程?我这样做是为了作为确认正确执行的调试选项。我总是从其他库(pthread.h、threads.h)但不是从Windowsapi得到正确的结果。这不是一个关键问题,但我想学习winapi中的程序

无法建立服务器客户端连接 - C winsock 中的错误 10061

我正在尝试在我家中本地网络中的2台计算机上运行服务器客户端。第一台电脑是服务器,第二台是客户端。尝试连接服务器时出现错误10061。(“错误-连接失败。sockfd是164,errno是34,WSA是10061”)。错误10061表示-“连接被拒绝。无法建立连接,因为目标机器主动拒绝它。这通常是由于尝试连接到外部主机上不活动的服务——即没有运行服务器应用程序的服务。”我认为这可能是防火墙问题,所以我在我的防火墙中批准了我正在使用的端口,但它仍然不起作用。此外,两台计算机具有相同的IP(这是为什么?)。这是我的代码:服务器.c:#include#include#include#inclu

c++ - 从源代码构建的 Clang 编译 C 但不编译 C++ 代码

我最近在Windows上编译了clang(主机:x86_64-pc-windows64;编译器:i686-pc-mingw32;目标:i686-pc-mingw32)。可以找到CMakeCache(用于配置):here我的问题是,虽然clang工作正常(对于C),但clang++(对于C++)将“成功”编译和链接,但生成的程序本身不会运行并将退出并返回错误代码1。下面是示例(哦-我的-zsh):➜bincattest.c#includeintmain(){printf("HelloWorld!\n");return0;}➜bincattest.cpp#includeintmain(){

c - 获取内核对象窗口列表

嗨!我打赌一个多星期了,我无法形成一个完整的图来说明如何获得内核对象列表。我的算法如下:1)连接NTDLL.dll(LoadLibrary)2)GetProcAddress(variable_Library_name,"NtQueryDirectoryObject")和预告结构:_OBJDIR_INFORMATION,_OBJECT_ATTRIBUTES3)尝试为列表应用NtOpenDirectoryObject函数对象下面是一段代码,负责函数NtOpenDirectoryObject的使用:OBJDIR_INFORMATION*ssinfo=(OBJDIR_INFORMATION*)

c - 套接字文件系统与普通磁盘文件系统

创建套接字后,它会立即创建一个假文件,用于通过网络读取/写入数据,但这个"file"到底是什么?一个普通的磁盘文件将位于磁盘中,任何东西都会被写入那里,但是套接字文件写入到哪里,也许是内存中的字节流? 最佳答案 套接字不会创建“假文件”。它创建一个文件描述符,它是流的系统抽象(好吧,你标记了windows和linux,实现非常依赖于系统)。文件、套接字、管道是经典的Unix流示例。对于套接字流,字节最终将物理写入硬件(内存和/或网卡),对于文件流,字节将物理写入物理驱动器。 关于c-套接